home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / hack / 2_3 / mkroom.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-20  |  2.0 KB  |  53 lines

  1. /*    SCCS Id: @(#)mkroom.h    2.3    87/12/12
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3.  
  4. /* mkroom.h - types and structures for room and shop initialization */
  5.  
  6. struct mkroom {
  7.     schar lx,hx,ly,hy;    /* usually xchar, but hx may be -1 */
  8.     schar rtype,rlit,doorct,fdoor;
  9. };
  10.  
  11. struct shclass {
  12.     char    *name;    /* name of the shop type */
  13.     char    symb;    /* this identifies the shop type */
  14.         int    prob;    /* the shop type probability in % */
  15.     schar    dist;    /* artifact placement type */
  16. #define D_SCATTER    0    /* normal placement */
  17. #define D_SHOP        1    /* shop-like placement */
  18. #define D_TEMPLE    2    /* temple-like placement */
  19.     struct itp {
  20.         int    iprob;    /* probability of an item type */
  21.         int itype;    /* item type: if >=0 a class, if < 0 a specific item */
  22.     } iprobs[5];
  23.     char **shknms;    /* string list of shopkeeper names for this type */
  24. };
  25. extern struct shclass shtypes[];    /* defined in shknam.c */
  26.  
  27. #define    MAXNROFROOMS    15
  28. extern struct mkroom rooms[MAXNROFROOMS+1];
  29.  
  30. #define    DOORMAX    100
  31. extern coord doors[DOORMAX];
  32.  
  33. /* values for rtype in the room definition structure */
  34. #define OROOM         0    /* ordinary room */
  35. #define COURT         2    /* contains a throne */
  36. #define    SWAMP         3    /* contains pools */
  37. #define    VAULT         4    /* contains piles of gold */
  38. #define    BEEHIVE         5    /* contains killer bees and royal jelly */
  39. #define    MORGUE         6    /* contains corpses, undead and ghosts */
  40. #define BARRACKS     7    /* contains soldiers and their gear */
  41. #define    ZOO         8    /* floor covered with treasure and monsters */
  42. #define    SHOPBASE     9    /* everything above this is a shop */
  43.  
  44. #define IS_SHOP(x)    ((x).rtype >= SHOPBASE)
  45.  
  46. /* mkshop.c entry points (should become mkroom.c in next major release) */
  47. extern void mkroom();        /* make and stock a room of a given type */
  48. extern boolean nexttodoor();    /* TRUE if adjacent to a door */
  49. extern boolean has_dnstairs();    /* TRUE if given room has a down staircase */
  50. extern boolean has_upstairs();    /* TRUE if given room has an up staircase */
  51. extern int dist2();        /* Euclidean square-of-distance function */
  52. extern struct permonst *courtmon();    /* generate a court monster */
  53.